// ----------------------------------
// RSDK Project: Sonic 1/Sonic 2
// Script Description: Sega Object
// Script Author: Christian Whitehead/Simon Thomley
// Unpacked by Rubberduckycooly's script unpacker
// ----------------------------------

// Aliases
private alias 1 : TYPE_SEGA

private alias object.value0 : sega.fadeValue
private alias object.value2 : sega.spriteCounter
private alias object.value3 : sega.LSelCheat
private alias object.value4 : sega.anyCheatDone
private alias object.value5 : sega.reigonCheat
private alias object.value6 : timer

// Function declarations
reserve function Sega_CheckTouchCheat

function Sega_CheckTouchCheat
	CheckTouchRect(0, 0, screen.xsize, screen.ysize)
	if checkResult == -1
		sega.anyCheatDone = 0
	end if
	if sega.anyCheatDone == 0
		temp0 = screen.xcenter
		switch sega.LSelCheat
		case 0
			temp0 -= 93
			temp1 = temp0
			temp1 += 39
			break
		case 1
			temp0 -= 50
			temp1 = temp0
			temp1 += 42
			break
		case 2
			temp0 -= 6
			temp1 = temp0
			temp1 += 42
			break
		case 3
			temp0 += 36
			temp1 = temp0
			temp1 += 58
			break
		end switch
		CheckTouchRect(temp0, 90, temp1, 150)
		if checkResult > -1
			sega.anyCheatDone = 1
			sega.LSelCheat++
			if sega.LSelCheat == 4
				if options.gameMode == 0
					PlaySfx(SfxName[Ring L], 0)
					options.stageSelectFlag = 1
				end if
			end if
		end if
		temp0 = screen.xcenter
		switch sega.reigonCheat
		case 0
			temp0 += 36
			temp1 = temp0
			temp1 += 58
			break
		case 1
			temp0 -= 6
			temp1 = temp0
			temp1 += 42
			break
		case 2
			temp0 -= 50
			temp1 = temp0
			temp1 += 42
			break
		case 3
			temp0 -= 93
			temp1 = temp0
			temp1 += 39
			break
		end switch
		CheckTouchRect(temp0, 90, temp1, 150)
		if checkResult > -1
			sega.anyCheatDone = 1
			sega.reigonCheat++
			if sega.reigonCheat == 4
				PlaySfx(SfxName[Ring L], 0)
				options.region ^= 1
			end if
		end if
	end if
end function


event ObjectMain
	if inputPress.start == 1
		if SaveRAM[409] != 1
			if object.state < 7
				StopSfx(SfxName[Sega Chant], 0)
				sega.fadeValue = 200
				object.state = 7
			end if
		end if
	end if
	
	switch object.state
	case 0
		if SaveRAM[409] == 1
			StopSfx(SfxName[Sega Chant], 0)
			sega.fadeValue = 200
			object.state = 8	
		else
			PlaySfx(SfxName[Sega Chant], 0)
			object.scale = 9000
			object.state++
		end if
		break
	case 1
		if object.state != 7
			if object.scale >= 700
				object.scale -= 200
			else
				object.state = 6
				object.scale = 500
			endif
		end if
		if timer <= 600
			timer ++
		else
			timer = 0
			object.state ++
		endif	
		break
	case 6
		sega.fadeValue++
		if sega.fadeValue == 160
			sega.fadeValue = 0
			object.state = 7
		end if
		CallFunction(Sega_CheckTouchCheat)
		break
	case 7
		if sega.fadeValue < 256
			object.scale -= 30
			sega.fadeValue += 8
			SetScreenFade(0, 0, 0, sega.fadeValue)
		else
			//if stage.playerListPos == 2
				//ResetObjectEntity(object.entityPos, TypeName[K Logo], 0, object.xpos, object.ypos)
			//else
				LoadPalette("Global/Splash.act", 0, 50, 50, 61)
				ResetObjectEntity(object.entityPos, TypeName[Splash], 0, object.xpos, object.ypos)
			//end if
			SetScreenFade(0, 0, 0, 255)
		endif
		break
	case 8
		if sega.fadeValue < 256
			object.scale -= 30
			sega.fadeValue += 8
			SetScreenFade(0, 0, 0, sega.fadeValue)
		else
			//if stage.playerListPos == 2
				//ResetObjectEntity(object.entityPos, TypeName[K Logo], 0, object.xpos, object.ypos)
			//else
				LoadPalette("Global/TitleScreen.act", 0, 0, 0, 255)
				ResetObjectEntity(object.entityPos, TypeName[ST Screen], 0, object.xpos, object.ypos)
			//end if
			SetScreenFade(0, 0, 0, 255)
		endif
		break
	end switch
end event


event ObjectDraw
	DrawRect(0, 0, screen.xsize, screen.ysize, 0, 0, 0, 255)
	switch object.state
	case 1
	case 7
		DrawSpriteScreenFX(0, FX_SCALE, screen.xcenter, screen.ycenter)
		break
	case 6
		DrawSpriteScreenXY(0, screen.xcenter, screen.ycenter)
		break
	endswitch
end event


event ObjectStartup
	LoadSpriteSheet("Title/Title.gif")
	SpriteFrame(-93, -31, 185, 62, 1, 1)		//Sega 
	options.touchControls = 0
end event

event RSDKDraw
	DrawSprite(0)
end event

event RSDKLoad
	LoadSpriteSheet("Global/Display.gif")
	SpriteFrame(-16, -16, 32, 32, 1, 143)
end event
